// pages/order/index.js
const WXAPI = require('../../miniprogram_npm/apifm-wxapi/index')

Page({

  /**
   * 页面的初始数据
   */
  data: {
    activeTab: 0,
    loading: false,
    partyOrders: [],
    freeOrders: [],
    refundOrders: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 如果有传入的tab参数，设置默认激活的tab
    if (options.tab) {
      this.setData({
        activeTab: parseInt(options.tab)
      })
    }
    this.loadOrderData()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 每次显示页面时刷新数据
    this.loadOrderData()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.loadOrderData().then(() => {
      wx.stopPullDownRefresh()
    })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 可以在这里实现分页加载更多订单
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '我的订单',
      path: '/pages/order/index'
    }
  },

  /**
   * Tab切换事件
   */
  onTabChange(event) {
    this.setData({
      activeTab: event.detail.name
    })
  },

  /**
   * 加载订单数据
   */
  async loadOrderData() {
    this.setData({ loading: true })
    
    try {
      // 这里需要根据实际的API接口来获取数据
      // 示例：使用模拟数据
      const mockData = this.getMockOrderData()
      
      this.setData({
        partyOrders: mockData.partyOrders,
        freeOrders: mockData.freeOrders,
        refundOrders: mockData.refundOrders,
        loading: false
      })
      
      // 实际项目中应该调用真实API
      // const res = await WXAPI.orderList({
      //   token: wx.getStorageSync('token')
      // })
      // if (res.code === 0) {
      //   this.processOrderData(res.data)
      // }
      
    } catch (error) {
      console.error('加载订单数据失败:', error)
      wx.showToast({
        title: '加载失败',
        icon: 'none'
      })
      this.setData({ loading: false })
    }
  },

  /**
   * 获取模拟订单数据
   */
  getMockOrderData() {
    return {
      partyOrders: [
        {
          id: '1',
          orderNo: 'PD202309110001',
          productName: '派对套餐A',
          productDesc: '包含饮料、小食、装饰用品',
          productImage: '/images/party1.png',
          price: '299.00',
          quantity: 1,
          createTime: '2023-09-11 14:30:00',
          status: 'party'
        },
        {
          id: '2',
          orderNo: 'PD202309110002',
          productName: '生日派对套餐',
          productDesc: '生日蛋糕、气球、彩带等',
          productImage: '/images/party2.png',
          price: '199.00',
          quantity: 1,
          createTime: '2023-09-11 10:15:00',
          status: 'party'
        }
      ],
      freeOrders: [
        {
          id: '3',
          orderNo: 'PD202309100001',
          productName: '免费体验套餐',
          productDesc: '新用户专享免费体验',
          productImage: '/images/free1.png',
          price: '99.00',
          quantity: 1,
          createTime: '2023-09-10 16:20:00',
          status: 'free'
        }
      ],
      refundOrders: [
        {
          id: '4',
          orderNo: 'PD202309090001',
          productName: '派对套餐B',
          productDesc: '因故取消，已退款',
          productImage: '/images/party3.png',
          price: '399.00',
          quantity: 1,
          createTime: '2023-09-09 12:00:00',
          status: 'refund'
        }
      ]
    }
  },

  /**
   * 查看订单详情
   */
  viewDetail(event) {
    const orderId = event.currentTarget.dataset.id
    wx.navigateTo({
      url: `/pages/order/details?id=${orderId}`
    })
  },

  /**
   * 查看退款详情
   */
  viewRefundDetail(event) {
    const orderId = event.currentTarget.dataset.id
    wx.navigateTo({
      url: `/pages/refund-detail/index?id=${orderId}`
    })
  }
})